// copy views/**.handlebars, and delete http://127.0.0.1:7000
const fs = require('fs');
const stat = fs.stat;
const path = require('path');
const glob = require("glob");


let entries = [];

entries = glob.sync("./views/**/*.handlebars").map(item => {
    return path.resolve(__dirname, item);
});

console.log(entries);


// 复制目录
copyDir('./views', './koa-dist-views', copy);

/*
05
 * 复制目录中的所有文件包括子目录
06
 * @param{ String } 需要复制的目录
07
 * @param{ String } 复制到指定的目录
08
 */
function copy(src, dst) {
    // 读取目录中的所有文件/目录
    fs.readdir(src, function (err, paths) {
        if (err) {
            throw err;
        }

        paths.forEach(function (path) {
            var _src = src + '/' + path,
                _dst = dst + '/' + path,
                readable, writable;

            stat(_src, function (err, st) {
                if (err) {
                    throw err;
                }

                // 判断是否为文件
                if (st.isFile()) {
                    if(!/\.handlebars$/i.test(_src)){
                        return;
                    }

                    // 创建读取流
                    readable = fs.readFileSync(_src, {encoding:"utf-8"});


                    readable = readable.replace(/src="http\:\/\/127\.0\.0\.1\:7000\//,'src="');
                    console.log(readable);

                    // 创建写入流
                    fs.writeFileSync(_dst, readable);
                }
                // 如果是目录则递归调用自身
                else if (st.isDirectory()) {
                    copyDir(_src, _dst, copy);
                }
            });
        });
    });
};

// 在复制目录前需要判断该目录是否存在，不存在需要先创建目录
function copyDir(src, dst, callback) {
    fs.exists(dst, function (exists) {
        // 已存在
        if (exists) {
            callback(src, dst);
        }
        // 不存在
        else {
            fs.mkdir(dst, function () {
                callback(src, dst);
            });
        }
    });
};
